As the Internet has evolved from a novelty into a business tool, customers are demanding faster and more reliable service. Users are not only sharing information over the Internet, often containing complex graphical content, but are also creating new usages. For example, the Internet has become increasingly popular as a mechanism for distributing software and other information. In order to increase the productivity of users in an Internet environment by reducing the time wasted waiting for information, a need exists to substantially speed up delivery of information. The software and other information sought to be transmitted over the Internet frequently exist in a single large file. The large sizes of the files containing the information increases the probabilities that large downloads will result in either a loss of connection, system time-out or other system problems. These problems often result in the loss of the software or information sought to be downloaded and frequently requires multiple retries before the task is accomplished, thereby reducing the productivity of users within the Internet environment.
One prior art solution attempted to alleviate the problems of transferring large files by increasing the speed of the hardware. This effort has been mainly concentrated on increasing the computer's modem speed. Since a 14,400 baud modem will download a file seven times faster then a 2400 baud modem, a file that takes one hour to download at 2400 baud would only take 8.6 minutes at 14,400 baud. Consequently, modem speeds have undergone seemingly endless increases from 2400 baud to 14.4K, 28.8K, 33.6K to today's highest-speed modems, which are capable of transmitting at or below a 56K baud rate. While the increases in modem speed eases the downloading of files in certain instances, what has resulted is a plethora of computers containing modems of differing transfer rates and capabilities.
Another prior solution attempted to alleviate the problems encountered when downloading a large file by splitting the large file into multiple smaller files. This results in a better chance of a given download being successful. For example, a large 10 megabyte (MB) file would be split into ten one-megabyte segments and stored along with the 10 megabyte file. A user would then select which file (e.g., 10 MB or 10 one-MB files) to download based on the transfer rates and capabilities of the user's computer. This solution suffers from the need for additional storage, labor expenditures for splitting the large file into smaller sections and writing of HTML (Hypertext Markup Language) for supporting downloading of the smaller sections. In addition, it is never possible to split a file into optimized segments for every potential user's computer wishing to download the file, since the ideal size of a split file is known only by the user downloading the split file.
Still other prior art techniques have sought to replace the analog lines over which information is typically transmitted with specialized transmission media such as ISDN (Integrated Services Digital Network) lines. A typical ISDN line has an un-compressed speed of 128K baud. However, ISDN lines are frequently more expensive than analog lines and are not available in every area.
Consequently, it would be desirable to provide a mechanism to pass a large file from a server to a client, as a collection of smaller files, without breaking the large file up on the server side while eliminating the need for creation of HTML or specific user interfaces for the split file.